// =================================================================================
// THIS IS A TEMPLATE FILE
// 
// To set these up to for a new state, do a find/replace on the constant STATE_NAME
// 
// Also replace the #define just below to a more appropriate name manually.
// =================================================================================

#ifndef STATE_NAME_HPP
#define STATE_NAME_HPP

#include "AppState.hpp"

#include "DotSceneLoader.hpp"

#include <OgreSubEntity.h>
#include <OgreMaterialManager.h>

class STATE_NAME : public AppState
{
	public:
		
		// Constructor
		STATE_NAME();

		DECLARE_APPSTATE_CLASS(STATE_NAME)

		// Inherited AppState functions.
		void enter();
		void exit();
		bool pause();
		void resume();
		void update(double timeSinceLastFrame);
 
		// Not inherited, but standard issue.
		void createScene();
 
		// Overrides for the OIS commands. 
		bool keyPressed(const OIS::KeyEvent &keyEventRef);
		bool keyReleased(const OIS::KeyEvent &keyEventRef);
 
		bool mouseMoved(const OIS::MouseEvent &arg);
		bool mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id);
		bool mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id);
	
	private:

		// Quit flag
		bool						m_bQuit;


};

#endif